Full-text search হল একটি শক্তিশালী টুল, যা বিশেষভাবে টেক্সট ডেটাতে দ্রুত এবং কার্যকর অনুসন্ধান করতে সহায়ক। ArangoDB-তে Full-text search সমর্থিত এবং এটি বিশেষ করে যখন ডেটা বিশাল এবং জটিল থাকে, তখন খুবই কার্যকর।
ArangoDB-তে full-text search ব্যবহারের জন্য ArangoSearch ব্যবহার করা হয়। এটি একটি উচ্চ-কার্যক্ষমতাসম্পন্ন সার্চ ইঞ্জিন যা ফিল্টার, ফ্যাসেটিং, টেক্সট ম্যানিপুলেশন এবং সাজানোর (ranking) জন্য উন্নত ফিচার সরবরাহ করে।
ArangoDB-তে Full-text Search কী?
Full-text search এমন একটি প্রক্রিয়া, যেখানে নির্দিষ্ট একটি শব্দ বা বাক্যাংশের জন্য ডেটাবেসের সমস্ত টেক্সট ডেটা অনুসন্ধান করা হয়। ArangoDB-তে ArangoSearch ইনডেক্স ব্যবহার করে টেক্সট অনুসন্ধান করা হয়, যা বিভিন্ন অনুসন্ধান, র্যাঙ্কিং এবং সাজানোর ফিচার প্রস্তাব করে।
ArangoSearch ইনডেক্স তৈরি
ArangoDB-তে Full-text search করার জন্য ArangoSearch Index ব্যবহার করা হয়। এটি একটি বিশেষ ধরনের ইনডেক্স যা ফিল্ডের টেক্সট অনুসন্ধান করতে সহায়ক।
ইনডেক্স তৈরি করার উদাহরণ:
db.collection.createIndex({
type: "fulltext",
fields: ["content"], // এখানে content ফিল্ডে Full-text ইনডেক্স তৈরি করা হচ্ছে
minLength: 3 // শব্দের সর্বনিম্ন দৈর্ঘ্য (3 অক্ষর)
});
বিবরণ:
type: "fulltext": Full-text ইনডেক্স তৈরি করবে।fields: ["content"]: যেকোনো ফিল্ডে ইনডেক্স তৈরি করা যেতে পারে।minLength: Full-text search এর জন্য শব্দের দৈর্ঘ্য কমপক্ষে কত হওয়া উচিত তা নির্ধারণ করে।
Full-text Search ব্যবহার
ArangoSearch ইনডেক্স তৈরি করার পরে, আপনি full-text search করতে পারবেন।
Search Query উদাহরণ:
FOR doc IN collection
SEARCH ANALYZER(doc.content == "ArangoDB", "text_en")
RETURN doc
বিবরণ:
SEARCH: Full-text search অপারেটর।ANALYZER:text_enআ্যানালাইজার ব্যবহার করে টেক্সট অনুসন্ধান করা হয়।
Full-text Ranking (স্কোরিং)
ArangoDB-তে Full-text ranking বা scoring ব্যবহার করে আপনি বিভিন্ন অনুসন্ধান ফলাফলের মধ্যে অগ্রাধিকার সেট করতে পারেন। এটি সাধারণত relevance score হিসাবে পরিচিত এবং এটি নির্ধারণ করে কোন ডকুমেন্টটি অনুসন্ধানের জন্য সবচেয়ে প্রাসঙ্গিক।
Ranking এবং Scoring উদাহরণ:
FOR doc IN collection
SEARCH ANALYZER(doc.content == "ArangoDB", "text_en")
SORT BM25(doc) DESC
RETURN { doc, score: BM25(doc) }
বিবরণ:
BM25(doc): এটি ArangoDB-তে ব্যবহৃত একটি র্যাঙ্কিং মেট্রিক, যা সার্চ ফলাফলের প্রাসঙ্গিকতা নির্ধারণ করে।SORT BM25(doc) DESC: BM25 স্কোর অনুসারে ফলাফল সাজানো হয়।
ArangoDB-তে Full-text Search এবং Ranking এর অন্যান্য ফিচার
1. Phrase Matching:
ArangoDB-তে, আপনি শব্দের একত্রিত প্রস্থানের জন্য ফ্রেজ ম্যাচিং করতে পারেন।
FOR doc IN collection
SEARCH ANALYZER(doc.content == "search engine", "text_en")
RETURN doc
এখানে "search engine" পুরো শব্দের জোড়া হিসেবে খুঁজে বের করা হবে।
2. Boolean Search:
Boolean অপারেটর যেমন AND, OR, এবং NOT ব্যবহার করে আরো জটিল সার্চ করা যায়।
FOR doc IN collection
SEARCH ANALYZER(doc.content == "ArangoDB" AND doc.content == "search", "text_en")
RETURN doc
3. Wildcard Search:
Wildcard ব্যবহার করে অংশবিশেষে মিলের জন্য অনুসন্ধান করা যেতে পারে।
FOR doc IN collection
SEARCH ANALYZER(doc.content == "Arango*", "text_en")
RETURN doc
4. Fuzzy Matching:
ArangoDB তে ফাজি ম্যাচিং ব্যবহার করে আপনি কাছাকাছি শব্দ খুঁজে বের করতে পারেন।
FOR doc IN collection
SEARCH ANALYZER(doc.content == "Arangodb~", "text_en")
RETURN doc
এখানে "Arangodb~" শব্দটি "ArangoDB" এর কাছাকাছি শব্দ অনুসন্ধান করবে।
সারাংশ
ArangoDB-তে Full-text Search একটি শক্তিশালী ফিচার যা ArangoSearch Index ব্যবহার করে টেক্সট ডেটা দ্রুত এবং কার্যকরভাবে অনুসন্ধান করতে সহায়ক। Ranking বা scoring ব্যবহার করে প্রাসঙ্গিকতার ভিত্তিতে ফলাফল সাজানো যায়, যা সঠিক ডেটা প্রাপ্তির জন্য গুরুত্বপূর্ণ। ArangoDB-তে বিভিন্ন ধরনের অনুসন্ধান কৌশল যেমন Phrase Matching, Boolean Search, Wildcard Search, এবং Fuzzy Matching ব্যবহার করে আরও উন্নত সার্চ প্রক্রিয়া করা যায়।
Read more